# make html-version of this manual with:
# rmarkdown::render("manualMap.R")

# load libraries
library(qlcVisualize)
library(maptools)
source("code/mappingAlignments.R")

# load doculects
places <- read.delim("data/places.tsv", quote = "")

# load manually prepared window
border <- maptools::readShapePoly("gis/boundary.shp"
                , proj4string = CRS("+proj=longlat +datum=WGS84")
                )
plot(border)

# make voronoi map
v <- voronoi(places[,c("Longitude", "Latitude")], spatstat::as.owin(border))
plot(v)

# plotting families
familymap <- function(factor) {
    cols <- sample(rainbow(nlevels(factor)))
    vmap(v, col = cols[factor], border = NA)
    legend("bottomright", legend = levels(factor), fill = cols, cex = .5)
}

# plotting languages per family
languagemap <- function(family) {
    L <- places$Language
    L[places$LanguageGroup != family] <- NA
    L <- as.factor(as.character(L))
    familymap(L)
    title(family)
}

# maps
familymap(places$LanguageGroup)

invisible(sapply(levels(places$LanguageGroup), languagemap))

### TODO
# add "asp" option in vmap
# add possibility to add "outer" points in window

# show Session Info
sessionInfo()
## R version 3.3.0 (2016-05-03)
## Platform: x86_64-apple-darwin13.4.0 (64-bit)
## Running under: OS X 10.11.5 (El Capitan)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] maptools_0.8-39    sp_1.2-3           qlcVisualize_0.1.0
## 
## loaded via a namespace (and not attached):
##  [1] gtools_3.5.0       spam_1.3-0         slam_0.1-34       
##  [4] lattice_0.20-33    colorspace_1.2-6   mapplots_1.5      
##  [7] htmltools_0.3.5    yaml_2.1.13        mgcv_1.8-12       
## [10] R.oo_1.20.0        alphahull_2.1      spatstat_1.45-2   
## [13] foreign_0.8-66     R.utils_2.3.0      registry_0.3      
## [16] sgeostat_1.0-27    foreach_1.4.3      plyr_1.8.3        
## [19] stringr_1.0.0      fields_8.4-1       munsell_0.4.3     
## [22] gtable_0.2.0       raster_2.5-2       R.methodsS3_1.7.1 
## [25] caTools_1.17.1     evaluate_0.9       codetools_0.2-14  
## [28] knitr_1.13         seriation_1.2-0    Rcpp_0.12.5       
## [31] KernSmooth_2.23-15 tensor_1.5         formatR_1.4       
## [34] scales_0.4.0       gdata_2.17.0       abind_1.4-3       
## [37] mapdata_2.2-6      deldir_0.1-12      gplots_3.0.1      
## [40] digest_0.6.9       tripack_1.3-7      ggplot2_2.1.0     
## [43] stringi_1.1.1      gclus_1.3.1        sparsesvd_0.1-1   
## [46] qlcMatrix_0.9.5    splancs_2.01-38    polyclip_1.5-6    
## [49] grid_3.3.0         tools_3.3.0        bitops_1.0-6      
## [52] magrittr_1.5       maps_3.1.0         goftest_1.0-3     
## [55] cluster_2.0.4      whisker_0.3-2      docopt_0.4.3.3    
## [58] dendextend_1.1.8   MASS_7.3-45        Matrix_1.2-6      
## [61] rmarkdown_0.9.6    iterators_1.0.8    TSP_1.1-4         
## [64] rpart_4.1-10       nlme_3.1-127